#include "Share.hpp"

int main()
{
    // //创建key
    // key_t key=::ftok(path.c_str(),pid);
    // if(key<0)
    // {
    //     std::cout<<"ftok error"<<std::endl;
    //     return -1;
    // }

    // //申请共享内存
    // int shmid=::shmget(key,4096,IPC_CREAT | IPC_EXCL |0666);
    // if (shmid < 0)
    // {
    //     std::cerr << "shmget error" << std::endl;
    //     return -1;
    // }
    // std::cout<<"申请共享内存成功"<<std::endl;

    // //删除共享内存
    // ::shmctl(shmid,IPC_RMID,nullptr);

    shm.CreateShm();
    shm.AttachShm();

    // //读取共享内存
    // while (true)
    // {
    //     char *p = (char *)shm.GetAddr();
    //     std::cout << p << std::endl;
    //     sleep(1);
    // }

     while (true) 
     {
        // 等待写端信号
        shm.WaitForSignal();
        
        // 读取并显示共享内存内容
        char *p = (char *)shm.GetAddr();
        std::cout << "Received: " << p << std::endl;
    }


    shm.DetachShm();
    shm.DeleteShm();

    return 0;
}